﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class СоединенияИБГлобальный
	{
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ ОЖИДАНИЯ
		// Выполнить завершение текущего сеанса, если установлена блокировка соединений
		// с информационной базой.
		//

		public void КонтрольРежимаЗавершенияРаботыПользователей(/**/)
		{
			/*// Получим текущее значение параметров блокировки
*/
			//ТекущийРежим = СоединенияИБ.ПараметрыБлокировкиСеансов();
			//БлокировкаУстановлена = ТекущийРежим.Установлена;
			if(true/*НЕ БлокировкаУстановлена*/)
			{
			}
			//ВремяНачалаБлокировки = ТекущийРежим.Начало;
			//ВремяОкончанияБлокировки = ТекущийРежим.Конец;
			//ИнтервалПредупреждения    = ТекущийРежим.ИнтервалОжиданияЗавершенияРаботыПользователей;
			//ИнтервалЗакрытьСЗапросом  = 0;
			//ИнтервалЗакрытьБезЗапроса = - ИнтервалПредупреждения / 5;
			//ИнтервалПрекратить        = - ИнтервалПредупреждения / 2.5;
			//ТекущийМомент             = ТекущаяДата();
			if(true/*ВремяОкончанияБлокировки <> '00010101' И ТекущийМомент > ВремяОкончанияБлокировки*/)
			{
			}
			//ТекстСообщения = СоединенияИБКлиентСервер.ИзвлечьСообщениеБлокировки(ТекущийРежим.Сообщение);
			if(true/*НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки)
	 ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалПрекратить*/)
			{
				//ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
				//ЗавершитьРаботуСистемы(Истина, Истина);
			}
		}
		// Выполнить завершение активных сеансов, если превышено время ожидания, а затем
		// завершить текущий сеанс.
		//

		public void ЗавершитьРаботуПользователей(/**/)
		{
			/*// Получим текущее значение параметров блокировки
*/
			//ТекущийРежим = СоединенияИБ.ПараметрыБлокировкиСеансов(Истина);
			//КоличествоСеансов = ТекущийРежим.КоличествоСеансов;
			if(true/*КоличествоСеансов <= 1*/)
			{
				/*// Отключены все пользователи, кроме текущего сеанса
*/
				/*// В последнюю очередь завершается сеанс, запущенный с параметром "ЗавершитьРаботуПользователей".
*/
				/*// Такой порядок отключений необходим для обновления конфигурации с помощью пакетного файла
*/
				//ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
				//ЗавершитьРаботуСистемы(Ложь);
			}
			//БлокировкаУстановлена = ТекущийРежим.Установлена;
			if(true/*НЕ БлокировкаУстановлена*/)
			{
			}
			//ВремяНачалаБлокировки = ТекущийРежим.Начало;
			//ИнтервалОтключения = - ТекущийРежим.ИнтервалОжиданияЗавершенияРаботыПользователей;
			//ТекущийМомент = ТекущаяДата();
			/*ПринудительноеЗавершение = НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки)
		ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалОтключения;*/
			if(true/*НЕ ПринудительноеЗавершение*/)
			{
				/*ТекстСообщения = НСтр("ru = 'Активных сеансов: %1.
			|Следующая проверка сеансов будет выполнена через минуту.'");*/
				/*ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			ТекстСообщения, КоличествоСеансов);*/
				/*Состояние(НСтр("ru = 'Выполняется завершение сеансов'"), , 
			ТекстСообщения, БиблиотекаКартинок.Информация32);*/
			}
			/*// после начала блокировки сеансы всех пользователей должны быть отключены	
*/
			/*// если этого не произошло пробуем принудительно прервать соединения
*/
			//ОтключитьОбработчикОжидания("ЗавершитьРаботуПользователей");
			//Результат = СоединенияИБКлиентСервер.ОтключитьСоединенияИБПоПараметрамЗапуска(ПараметрЗапуска);
			if(true/*Результат*/)
			{
				/*Состояние(НСтр("ru = 'Завершение сеансов выполнено успешно'"), , 
			НСтр("ru = 'Работа системы завершается...'"), БиблиотекаКартинок.Информация32);*/
				//ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
				//ЗавершитьРаботуСистемы(Ложь);
			}
		}
	}
}
